package taller2.utils;

import java.awt.Color;

public class Constants {

	public static final String codePath = "src/main/java/taller2/view/menus/CodeBrowser.java";

	// drawArea

	public static final String backgroundPath = "src/main/java/bg.jpg";
	public static final String selectedNodePath = "src/main/java/dotRed.png";
	public static final String markedNodePath = "src/main/java/dotPurple.png";
	public static final String unSelectedNodePath = "src/main/java/dotYellow.png";
	
	public static final String redNodePath = "src/main/java/dotRed.png";
	public static final String purpleNodePath = "src/main/java/dotPurple.png";
	public static final String yellowNodePath = "src/main/java/dotYellow.png";
	public static final String greenNodePath = "src/main/java/dotGreen.png";
	public static final String redGreenNodePath = "src/main/java/dotRedGreen.png";
	public static final String purleGreenNodePath = "src/main/java/dotPurpleGreen.png";
	public static final String redPurpleNodePath = "src/main/java/dotRedPurple.png";

	public static final int fontSize = 8;
	
	public static final Color selectedColor = new Color(255,0,0);
	public static final Color unSelectedColor = new Color(255,255,0);
	public static final Color fontColor = new Color(0,255,0);
	public static final Color tagFontColor = new Color(125,125,125);
	public static final Color dijstraMarkerColor = new Color(0,250,250);
	
	public static final float curvyness = (float) 0.6;

	public static enum Colores {yellow, red, purple, green, greenRed, greenPurple,  redPurple};

	//  pseudocodes & path
	public static final String pseudocodePath = "src/main/java/pseudocodes/";
	public static final String savedGraphsPath = "src/main/java/savedGraphs/";
	public static final String savedAlgorithmsGraphsPath = "src/main/java/savedAlgorithmsGraphs/";
	
	// autoscroll
	public static final long StartingScrollTime = 50;
	public static final long ScrollTime = 5;
	public static final long ScrollDelta = 50;
	
	// GraphConfig
	public static final String[] availableOptions = {"Move Nodes","Add Node","Tag Node", "Connect Nodes","Create Random Graph", 
													 "Delete Node", "Delete Connection","Delete Graph"};
	
	public static final String[] availableDijkstraOptions = {"Move Nodes","Add Node","Tag Node", "Connect Nodes","Create Random Graph", 
		 													 "Delete Node", "Delete Connection","Delete Graph","Select beginning node"};

	public static final String[] availableFordFulkersonOptions = {"Move Nodes","Add Node","Tag Node", "Connect Nodes","Create Random Graph", 
		 "Delete Node", "Delete Connection","Delete Graph","Select beginning node","Select end node", "Add Capacity/Use"};
	
	public static final String[] availableDFSyBFSOptions = {"Move Nodes","Add Node","Tag Node", "Connect Nodes","Create Random Graph", 
															"Delete Node", "Delete Connection","Delete Graph","Select beginning node"};		

	public static final String[] availableStronglyConnectedOptions = {"Move Nodes","Add Node","Tag Node", "Connect Nodes","Create Random Graph", 
																"Delete Node", "Delete Connection","Delete Graph"};		

	public static final String[] availableTopologicOptions = {"Move Nodes","Add Node","Tag Node", "Connect Nodes","Create Random Graph", 
			 "Delete Node", "Delete Connection","Delete Graph","Select beginning node"};
	
	public static final String[] primmSupervisorOptions = {"Select Connection"};
	public static final String[] DijkstraSupervisorOptions = {"Select Connection","Unselect Connection"};

	public static final String[] ConnectedComponentSupervisorOptions = {"Select Connection","Unselect Connection"};
	public static final String[] CycleDetectionSupervisorOptions = {"Select Node"};

	public static final String[] bfsSupervisorOptions   = {"Select Node"};
	public static final String[] dfsSupervisorOptions   = {"Select Node"};

	public static final String[] TopologicBfsSupervisorOptions = {"Select Node"};
	public static final String[] TopologicDfsSupervisorOptions = {"Select Node"};

	public static final String[] FordFulkersonSupervisorOptions = {"Change Use"};

	
	// window
	public static final double half = 0.6;
	public static final float padding = (float)0.91;
	
	// aboutUsMenu
	public static final int tamAboutUsX = 160;
	public static final int tamAboutUsY = 110;
	
	// helpMenu
	public static final int tamHelpMenuX = 500;
	public static final int tamHelpMenuY = 400;

	// selectionMenu
	public static final int tamSelMenuX = 200;
	public static final int tamSelMenuY = 320;
	
	// ImputMenu
	public static final int tamImputMenuX = 600;
	public static final int tamImputMenuY = 400;

	// DialogMenu
	public static final int tamDialogMenuX = 400;
	public static final int tamDialogMenuY = 300;	
	
	// Supervisor Menu Dialogs
	public static final String errorMsg = "Sorry, that answer was incorrect";
	public static final String errorMsgTopo = errorMsg + "\n Adjadcent nodes are traversed following the same order as how they are numbered";
	public static final String errorMsgTopoDFS = errorMsg + "\n Nodes are traversed following the same order as how they are numbered";
	public static final String okMsg ="Good job!!!";
	
	// floyd
	
	public static final int Inf = 99999;

	public static final float SampleTextSize = (float)0.6;

	public static final int ConnectionKilled = -9999;
	public static final int FluxConnKilled = -9998;
	public static final String FluxKilled = "-9998/-9998";

	//errores o chequeo de nulls
	public static final String  sinTag = "Nodo no etiquetado";
}
